/*
 * table_Declarator.h
 *
 *  Created on: 2012/04/26
 *      Author: guanxiaoying
 */

#ifndef TABLE_DECLARATOR_H_
#define TABLE_DECLARATOR_H_
typedef struct _DECLARATORACCESS{
	BOOL (*clear)( VOID );
	BOOL (*reset)( VOID );
	BOOL (*alloc)( AST );
	AST  (*getMax)( VOID );
	ACCESS_IDX_FIELD  nextDeclarator;
	ACCESS_IDX_FIELD  parentDeclarator;
	ACCESS_IDX_FIELD  declaration;
	ACCESS_U2_FIELD   declaratorKind;
	ACCESS_IDX_FIELD  bitIdx;
	ACCESS_IDX_FIELD  arrayIdx;
	ACCESS_IDX_FIELD  paramChain;
	ACCESS_IDX_FIELD  initialExpList;
	ACCESS_IDX_FIELD  symbol;
	ACCESS_U2_FIELD   constNum;
	ACCESS_U2_FIELD   volatileNum;
	ACCESS_U2_FIELD   restrictNum;
	ACCESS_IDX_FIELD  childDeclarator;		/* 7 */
	ACCESS_IDX_FIELD  type;					/* 8 */
	ACCESS_IDX_FIELD  codeScp;					/* 9 */
	S4 (*check)( AST );		/* for debug */
}DECLARATORACCESS;
extern const DECLARATORACCESS stDeclaratorAccess;
#endif /* TABLE_DECLARATOR_H_ */
